package com.ruoyi.material.domain;

import com.ruoyi.material.vo.WarehuseCountVO;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.List;

/**
 * 库存对象 warehouse_info
 * 
 * @author ruoyi
 * @date 2022-08-26
 */
public class WarehouseInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 关联项目 */
    @Excel(name = "关联项目")
    private String projectNo;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 仓库区域 */
    @Excel(name = "仓库区域")
    private String warehouseArea;

    /** 物料编号 */
    @Excel(name = "物料编号")
    private String materialNo;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String materialName;

    /** 物料类别 */
    @Excel(name = "物料类别")
    private String materialType;

    /** 规格 */
    @Excel(name = "规格")
    private String specifications;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 分配数量 */
    @Excel(name = "分配数量")
    private Long distributionCount;

    /** 剩余数量 */
    @Excel(name = "剩余数量")
    private Long remainderCount;

    /** 期初库存 */
    @Excel(name = "期初库存")
    private Long initCount;

    /** 安全库存 */
    @Excel(name = "安全库存")
    private Long secCount;

    /** 最小库存 */
    @Excel(name = "最小库存")
    private Long minCount;

    /** 最小库存 */
    @Excel(name = "最小库存")
    private Long maxCount;

    /** 备注 */
    @Excel(name = "备注")
    private String comment;

    /**
     * 绑定状态
     */
    private String bindingStatus;

    /**
     * 报溢数量
     */
    private Long overflowQuantity;

    /**
     * 报损数量
     * @param id
     */
    private Long lossQuantity;
    /**
     * 绑定状态
     */
    private Long disCount;

    public Long getDisCount() {
        return disCount;
    }

    public void setDisCount(Long disCount) {
        this.disCount = disCount;
    }

    /**
     * 库存颜色
     * @return
     */
    private String stockColor;

    private List<WarehuseCountVO> warehuseCountS;

    public List<WarehuseCountVO> getWarehuseCountS() {
        return warehuseCountS;
    }

    public void setWarehuseCountS(List<WarehuseCountVO> warehuseCountS) {
        this.warehuseCountS = warehuseCountS;
    }

    public String getStockColor() {
        if (stockColor == null) return "FDFDFEFF";
        return stockColor;
    }

    public void setStockColor(String stockColor) {
        this.stockColor = stockColor;
    }

    public Long getLossQuantity() {
        return lossQuantity;
    }

    public void setLossQuantity(Long lossQuantity) {
        this.lossQuantity = lossQuantity;
    }

    public Long getOverflowQuantity() {
        return overflowQuantity;
    }

    public void setOverflowQuantity(Long overflowQuantity) {
        this.overflowQuantity = overflowQuantity;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProjectNo(String projectNo) 
    {
        this.projectNo = projectNo;
    }

    public String getProjectNo() 
    {
        return projectNo;
    }
    public void setWarehouseName(String warehouseName) 
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() 
    {
        return warehouseName;
    }
    public void setWarehouseArea(String warehouseArea) 
    {
        this.warehouseArea = warehouseArea;
    }

    public String getWarehouseArea() 
    {
        return warehouseArea;
    }
    public void setMaterialNo(String materialNo) 
    {
        this.materialNo = materialNo;
    }

    public String getMaterialNo() 
    {
        return materialNo;
    }
    public void setMaterialName(String materialName) 
    {
        this.materialName = materialName;
    }

    public String getMaterialName() 
    {
        return materialName;
    }
    public void setMaterialType(String materialType) 
    {
        this.materialType = materialType;
    }

    public String getMaterialType() 
    {
        return materialType;
    }
    public void setSpecifications(String specifications) 
    {
        this.specifications = specifications;
    }

    public String getSpecifications() 
    {
        return specifications;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setDistributionCount(Long distributionCount) 
    {
        this.distributionCount = distributionCount;
    }

    public Long getDistributionCount() 
    {
        return distributionCount;
    }
    public void setRemainderCount(Long remainderCount) 
    {
        this.remainderCount = remainderCount;
    }

    public Long getRemainderCount() {
        if (remainderCount == null) return 0L;
        return remainderCount;
    }
    public void setInitCount(Long initCount) 
    {
        this.initCount = initCount;
    }

    public Long getInitCount() 
    {
        return initCount;
    }
    public void setSecCount(Long secCount) 
    {
        this.secCount = secCount;
    }

    public Long getSecCount() 
    {
        return secCount;
    }
    public void setMinCount(Long minCount) 
    {
        this.minCount = minCount;
    }

    public Long getMinCount() 
    {
        return minCount;
    }
    public void setMaxCount(Long maxCount) 
    {
        this.maxCount = maxCount;
    }

    public Long getMaxCount() 
    {
        return maxCount;
    }
    public void setComment(String comment) 
    {
        this.comment = comment;
    }

    public String getComment() 
    {
        return comment;
    }

    public String getBindingStatus() {
        return bindingStatus;
    }

    public void setBindingStatus(String bindingStatus) {
        this.bindingStatus = bindingStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectNo", getProjectNo())
            .append("warehouseName", getWarehouseName())
            .append("warehouseArea", getWarehouseArea())
            .append("materialNo", getMaterialNo())
            .append("materialName", getMaterialName())
            .append("materialType", getMaterialType())
            .append("specifications", getSpecifications())
            .append("unit", getUnit())
            .append("distributionCount", getDistributionCount())
            .append("remainderCount", getRemainderCount())
            .append("initCount", getInitCount())
            .append("secCount", getSecCount())
            .append("minCount", getMinCount())
            .append("maxCount", getMaxCount())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("comment", getComment())
            .toString();
    }
}
